home *** CD-ROM | disk | FTP | other *** search
/ Day Cry / Day Cry CD.bin / oh_towns / install / insttaro.c < prev    next >
Text File  |  1994-09-20  |  32KB  |  1,125 lines

  1. /*************************************************************************
  2. *    [TaroPYON SoftWare collection]âCâôâXâgü[âïÅêù¥
  3. *************************************************************************/
  4.  
  5. #define    _NO_HEWIN    (0)
  6. #define    _NO_EDIA    (1)
  7. #define    _NO_GSPLAY    (2)
  8. #define    _NO_HE386    (3)
  9. #define    _NO_CCI        (4)
  10. #define    _NO_DOSTOOL    (5)
  11. #define    _NO_TOSTOOL    (6)
  12. #define    _NUM_TAROSC    (7)
  13.  
  14. char    *_tarosc_aplname[_NUM_TAROSC] =
  15. {
  16.     "HEwin"    ,
  17.     "EDIA"     ,
  18.     "GSPLAY"   ,
  19.     "HE386"    ,
  20.     "CCI"      ,
  21.     "DOS tools",
  22.     "TownsOS tools"
  23. };
  24.  
  25. char    _tarosc_skey[_NUM_TAROSC] =    /* âVâçü[âgâJâbâgâLü[    */
  26. {    'H',
  27.     'E',
  28.     'G',
  29.     'M',
  30.     'C',
  31.     'D',
  32.     'T'
  33. };
  34.  
  35. char    _tarosc_instdir[_NUM_TAROSC][128];
  36. char    _tarosc_defdir[128];
  37. int        _tarosc_fcopy_att;
  38.  
  39. int        _hewin_swapDrv, _hewin_init;
  40. int        _edia_swapDrv;
  41. int        _gsplay_midi;
  42. int        _gsplay_rsmidi;
  43. int        _gsplay_internal;
  44.  
  45. int        _tarosc_setinstdir(char *instdir);
  46. int        _tarosc_setapldir();
  47. int        _tarosc_set_fcopymode();
  48. int        _tarosc_check_config(int item_setup);
  49. int        _hewin_config(char *instdir, int item_setup);
  50. int        _hewin_install(char *instdir,int item_setup);
  51. int        _hewin_setup(char *instdir,int item_setup);
  52. int        _edia_config(char *instdir, int item_setup);
  53. int        _edia_install(char *instdir,int item_setup);
  54. int        _edia_setup(char *instdir,int item_setup);
  55. int        _hewin_edia_setup(char *fn_mac, char *instdir,int item_setup);
  56. int        _chk_pathlist( char *pathlist, char *path );
  57. int        _gsplay_config(char *instdir, int item_setup);
  58. int        _gsplay_install(char *instdir,int item_setup);
  59. int        _gsplay_setup(char *instdir,int item_setup);
  60. int        _he386_install(char *instdir,int item_setup);
  61. int        _cci_install(char *instdir,int item_setup);
  62. int        _dostool_install(char *instdir,int item_setup);
  63. int        _tostool_install(char *instdir,int item_setup);
  64.  
  65. char    *get_inst_taro_mnu()
  66. {
  67.     char    *mnu;
  68.  
  69.     if ( (mnu = MNU_open()) == NULL )
  70.         return (NULL);
  71.     MNU_datAdd( mnu, 0, 'H', Rom16x16, 0, "tarosc_install" , 0, "TaroPYON SoftWare Collection");
  72.     MNU_datAdd( mnu, 0, 'S', Rom16x16, 0, "tarosdk_install", 0, "âTâCâhâÅü[âNâvâìâOâëâÇÅW"  );
  73.     MNU_datAdd( mnu, 0,  0 , Rom16x16, 0, ""               , 0, NULL );
  74.     MNU_datAdd( mnu, 0, '1', Rom16x16, 0, "splib_install"  , 0, "âëâCâuâëâèüòâ\ü[âX 1 (SPLIB)"  );
  75.     MNU_datAdd( mnu, 0, '2', Rom16x16, 0, "silib_install"  , 0, "âëâCâuâëâèüòâ\ü[âX 2 (SILIB)"  );
  76.     MNU_datAdd( mnu, 0, '3', Rom16x16, 0, "dtalib_install" , 0, "âëâCâuâëâèüòâ\ü[âX 3 (DTALIB)" );
  77.     MNU_datAdd( mnu, 0, '4', Rom16x16, 0, "lhadll_install" , 0, "âëâCâuâëâèüòâ\ü[âX 4 (LHA.DLL)");
  78.     MNU_setPosition(mnu,-1);
  79.  
  80.     return (mnu);
  81. }
  82.  
  83. int        tarosc_install()
  84. {
  85.     int            ret, i, att, len, drv, argc, item_setup;
  86.     char       *fp;
  87.     char      **argv, *p, *typename;
  88.     char        *instdir;
  89.     char       *softname;
  90.     char        srcdir[128], instfile[128];
  91.     char        helpfn[128];
  92.     char        item_ttl[80],item_prog[16], item_para[128];
  93.     int            item_att;
  94.     char       *dlgTxm;
  95.     char        tmp[256], tmp2[256];
  96.  
  97.     instdir = _tarosc_defdir;    instdir[0] = '\0';
  98.     softname = "TaroPYON SoftWare collection";
  99.     _tarosc_fcopy_att = FCOPY_ATT_SUBDIR | FCOPY_ATT_TIMESTAMP | FCOPY_ATT_CHK_OVERWRITE | FCOPY_ATT_NOENDMSG;
  100.  
  101. _TOP:
  102.     syl_putf(softname);
  103.     dlgTxm = DlgTxm_open(ColBoxNormal);
  104.     DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  105.     DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_CENTER,
  106.         "%s é≡âCâôâXâgü[âïé╡é▄é╖üB", softname );
  107.     DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, '\r'  , KA_EXEC  ,
  108.         1, "", 0, "▓▌╜─░┘ : [Ä└ìs]");
  109.     DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, 'H'   , KA_H     ,
  110.         2, "inst_help", "/OH_TOWNS/TAROPYON/taropyon.ggg", "Éαû╛ : [H]");
  111.     DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, '\x1B', KA_CANCEL,
  112.         3, "", 0, "ĵÅ┴ : [ĵÅ┴]");
  113.     DlgTxm_setSize(dlgTxm,320,40);
  114.     DlgTxm_setPosition(dlgTxm,DLGPOS_CENTER_OF_SCREEN);
  115.     do
  116.     {
  117.         ret = DlgTxm_start(dlgTxm);
  118.     } while ( ret == 2 );
  119.     DlgTxm_close(dlgTxm);
  120.     if ( ret != 1 )
  121.         goto _RET;
  122.  
  123.     /* âCâôâXâgü[âïɵÄwÆΦ    --------------------------------------------*/
  124. _SETDIR:
  125.     if ( _tarosc_setinstdir(instdir) )
  126.         goto _TOP;
  127.     if ( _tarosc_setapldir() < 0 )
  128.         goto _TOP;
  129.  
  130.     dlgTxm = DlgTxm_open(ColBoxNormal);
  131.     DlgTxm_setTitle(dlgTxm,Fnt16x16,softname);
  132.     DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_CENTER,
  133.         "ê╚ë║é╠âfâBâîâNâgâèé╔âCâôâXâgü[âïé╡é▄é╖üB" );
  134.     DlgTxm_putf( dlgTxm, Fnt16x12, TXMDAT_ATT_CENTER,"");
  135.     ret = 0;
  136.     for ( i = 0; i < _NUM_TAROSC; ++i )
  137.     {
  138.         if ( _tarosc_instdir[i][0] )
  139.         {
  140.             ret = 1;
  141.             DlgTxm_putf( dlgTxm, Fnt16x12, TXMDAT_ATT_LEFT,
  142.                 "  %-14s [%s]", _tarosc_aplname[i], _tarosc_instdir[i] );
  143.         }
  144.     }
  145.     DlgTxm_putf( dlgTxm, Fnt16x12, TXMDAT_ATT_CENTER,"");
  146.     DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_CENTER,
  147.         "▓▌╜─░┘1 üc âtâ@âCâïé≡òíÄ╩é╡é─TownsMENU é╔âAâCâeâÇôoÿ^");
  148.     DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_CENTER,
  149.         "▓▌╜─░┘2 üc âtâ@âCâïé≡òíÄ╩üiâAâCâeâÇôoÿ^é═é╡é╚éóüj    ");
  150.  
  151.     DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, '\r'  , KA_EXEC  , 1, "", 0, "▓▌╜─░┘1 : [Ä└ìs]");
  152.     DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, 'C'   , KA_C     , 2, "", 0, "▓▌╜─░┘2 : [C]");
  153.     DlgTxm_setBtn( dlgTxm, Fnt16x16, 144, 20, C_MBLACK, C_WHITE, C_HILIGHT, C_DARK, '\x1B', KA_CANCEL, 3, "", 0, "ĵÅ┴ : [ĵÅ┴]");
  154.     DlgTxm_setSize(dlgTxm,320,40);
  155.     DlgTxm_setPosition(dlgTxm,DLGPOS_CENTER_OF_SCREEN);
  156.     ret = DlgTxm_start(dlgTxm);
  157.     DlgTxm_close(dlgTxm);
  158.     if ( ret != 1 && ret != 2 )
  159.         goto _TOP;
  160.     item_setup = (ret == 1 ? 1 : 0);
  161.  
  162.     /* âJâXâ^â}âCâY            ------------------------------------------------*/
  163.     _tarosc_set_fcopymode();
  164.     if ( _tarosc_instdir[_NO_HEWIN  ][0] )    _hewin_config(  _tarosc_instdir[_NO_HEWIN  ], item_setup);
  165.     if ( _tarosc_instdir[_NO_EDIA   ][0] )    _edia_config(   _tarosc_instdir[_NO_EDIA   ], item_setup);
  166.     if ( _tarosc_instdir[_NO_GSPLAY ][0] )    _gsplay_config( _tarosc_instdir[_NO_GSPLAY ], item_setup);
  167.  
  168.     /* É▌ÆΦèmöF        --------------------------------------------------------*/
  169.     ret = _tarosc_check_config(item_setup);
  170.     if ( ret < 0 )
  171.         goto _TOP;
  172.     if ( ret == 0 )
  173.         goto _SETDIR;
  174.  
  175.     /* âCâôâXâgü[âïèJÄn        ------------------------------------------------*/
  176.     if ( _tarosc_instdir[_NO_HEWIN  ][0] )    _hewin_install(  _tarosc_instdir[_NO_HEWIN  ], item_setup);
  177.     if ( _tarosc_instdir[_NO_EDIA   ][0] )    _edia_install(   _tarosc_instdir[_NO_EDIA   ], item_setup);
  178.     if ( _tarosc_instdir[_NO_GSPLAY ][0] )    _gsplay_install( _tarosc_instdir[_NO_GSPLAY ], item_setup);
  179.     if ( _tarosc_instdir[_NO_HE386  ][0] )    _he386_install(  _tarosc_instdir[_NO_HE386  ], item_setup);
  180.     if ( _tarosc_instdir[_NO_CCI    ][0] )    _cci_install(    _tarosc_instdir[_NO_CCI    ], item_setup);
  181.     if ( _tarosc_instdir[_NO_DOSTOOL][0] )    _dostool_install(_tarosc_instdir[_NO_DOSTOOL], item_setup);
  182.     if ( _tarosc_instdir[_NO_TOSTOOL][0] )    _tostool_install(_tarosc_instdir[_NO_TOSTOOL], item_setup);
  183.     install_end( softname, 0 );
  184.  
  185. _RET:
  186.     syl_clear();
  187.  
  188.     return (NORMAL);
  189. }
  190.  
  191. int        _tarosc_setinstdir(char *instdir)
  192. {
  193.     char    tmp[256];
  194.  
  195.     if ( APL_setInstallDir(instdir,"âCâôâXâgü[âïɵÄwÆΦ") )
  196.         return (ERR);
  197.  
  198.     strcpy(tmp,instdir);
  199.     add_path_fn(tmp,"");    /* âpâXû╝é╠ì┼îπé≡'/' é╔    */
  200.  
  201.     sprintf( _tarosc_instdir[_NO_HEWIN    ], "%s%s", tmp, "HEWIN"  );
  202.     sprintf( _tarosc_instdir[_NO_EDIA     ], "%s%s", tmp, "EDIA"   );
  203.     sprintf( _tarosc_instdir[_NO_GSPLAY   ], "%s%s", tmp, "GSPLAY" );
  204.     sprintf( _tarosc_instdir[_NO_HE386    ], "%s%s", tmp, "HE386"  );
  205.     sprintf( _tarosc_instdir[_NO_CCI      ], "%s%s", tmp, "CCI"    );
  206.     sprintf( _tarosc_instdir[_NO_DOSTOOL  ], "%s%s", tmp, "DOSTOOL");
  207.     sprintf( _tarosc_instdir[_NO_TOSTOOL  ], "%s%s", tmp, "TOSTOOL");
  208.  
  209.     return (NORMAL);
  210. }
  211.  
  212. int        _tarosc_setapldir()
  213. {
  214.     char    *mnu, *mnuapl[_NUM_TAROSC];
  215.     char    *dir;
  216.     int        i, flag, ret;
  217.  
  218.     /* âTâuâüâjâàü[É▌ÆΦ    */
  219.     for ( i = 0; i < _NUM_TAROSC; ++i )
  220.     {
  221.         if ( (mnuapl[i] = MNU_open()) != NULL )
  222.         {
  223.             MNU_datAdd( mnuapl[i], 0, '1', Rom16x16, i, "_setdir_tarosc"   , NULL, "Set directory");
  224.             MNU_datAdd( mnuapl[i], 0, '0', Rom16x16, i, "_noinstall_tarosc", NULL, "No install"   );
  225.             MNU_setPosition(mnuapl[i],-1);
  226.         }
  227.     }
  228.  
  229.     do
  230.     {